Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / MicronWasmLoader.js

Displaying Raw • Download


meshchatx/src/frontend/js/MicronWasmLoader.js c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 9.37 KB

T8b949e/**
* Lazy-load micron-parser-go WASM (see https://github.com/Quad4-Software/Micron-Parser-Go ).
* Requires wasm_exec.js from Go and micron-parser-go.wasm under /vendor/micron-parser-go/,
* or a runtime WASM override from IndexedDB (see MicronWasmRuntimeOverride.js).
* Build-time fetch: scripts/fetch-micron-wasm.mjs; omitted builds set VITE_MICRON_WASM_BUNDLED=false.
*/

Tff7b72import Tb4b4b4{ Te6edf3getMicronWasmRuntimeOverride Tb4b4b4} Tff7b72from Ta5d6ff"./MicronWasmRuntimeOverride.js"Tb4b4b4;

Tff7b72let Te6edf3resolvedPromise Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72let Te6edf3integrityHashes Tff7b72= Tff7b72nullTb4b4b4;

Tff7b72let Te6edf3resolvedOverridePromise Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72function Te6edf3readRuntimeOverrideCachedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3resolvedOverridePromiseTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3resolvedOverridePromiseTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657globalThis Tff7b72!== Ta5d6ff"undefined" Tff7b72&& Tffa657globalThisTb4b4b4.Te6edf3__MESHCHATX_TEST_MICRON_WASM_OVERRIDE__ Tff7b72!== Tff7b72undefinedTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3v Tff7b72= Tffa657globalThisTb4b4b4.Te6edf3__MESHCHATX_TEST_MICRON_WASM_OVERRIDE__Tb4b4b4;
Te6edf3resolvedOverridePromise Tff7b72= Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3v Tff7b72=== Tff7b72false Tff7b72? Tff7b72null Tff7b72: Te6edf3vTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3resolvedOverridePromiseTb4b4b4;
Tb4b4b4}
Te6edf3resolvedOverridePromise Tff7b72= Tb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72return Tff7b72await Te6edf3getMicronWasmRuntimeOverrideTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3warnTb4b4b4(Ta5d6ff"Micron WASM: could not read runtime override"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3resolvedOverridePromiseTb4b4b4;
Tb4b4b4}

T8b949e/** Computes SHA-384 hash of ArrayBuffer for SRI verification. */
Tff7b72async Tff7b72function Te6edf3computeSriHashTb4b4b4(Te6edf3bufTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3hash Tff7b72= Tff7b72await Te6edf3cryptoTb4b4b4.Te6edf3subtleTb4b4b4.Te6edf3digestTb4b4b4(Ta5d6ff"SHA-384"Tb4b4b4, Te6edf3bufTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3base64 Tff7b72= Te6edf3btoaTb4b4b4(Tffa657StringTb4b4b4.Te6edf3fromCharCodeTb4b4b4(Tb4b4b4...Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff`Ta5d6ffsha384-Tffd700${Te6edf3base64Tffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}

T8b949e/** Injects CSS required for ForceMonospace mode when using WASM. Safe to call multiple times. */
Tff7b72function Te6edf3injectMicronWasmStylesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"micron-wasm-monospace-styles"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3styleEl Tff7b72= Tffa657documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"style"Tb4b4b4)Tb4b4b4;
Te6edf3styleElTb4b4b4.Te6edf3id Tff7b72= Ta5d6ff"micron-wasm-monospace-styles"Tb4b4b4;
Te6edf3styleElTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff`
Ta5d6ff .Mu-nl {
cursor: pointer;
}
.Mu-mnt {
display: inline-block;
min-width: 1ch;
text-align: center;
white-space: pre;
text-decoration: inherit;
font-variant-numeric: tabular-nums;
}
.Mu-mws {
text-decoration: inherit;
display: inline;
}
Ta5d6ff`Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3headTb4b4b4.Te6edf3appendChildTb4b4b4(Te6edf3styleElTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/** True when WASM artifacts were present at Vite build time (not runtime probing). */
Tff7b72export Tff7b72function Te6edf3isMicronWasmBundledTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657globalThis Tff7b72!== Ta5d6ff"undefined" Tff7b72&& Tff7b72typeof Tffa657globalThisTb4b4b4.Te6edf3__MESHCHATX_TEST_MICRON_WASM_BUNDLED__ Tff7b72=== Ta5d6ff"boolean"Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657globalThisTb4b4b4.Te6edf3__MESHCHATX_TEST_MICRON_WASM_BUNDLED__Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72importTb4b4b4.Te6edf3metaTb4b4b4.Te6edf3envTb4b4b4.Te6edf3VITE_MICRON_WASM_BUNDLED Tff7b72=== Ta5d6ff"true"Tb4b4b4;
Tb4b4b4}

Tff7b72function Te6edf3baseUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3root Tff7b72= Tff7b72importTb4b4b4.Te6edf3metaTb4b4b4.Te6edf3envTb4b4b4.Te6edf3BASE_URL Tff7b72|| Ta5d6ff"/"Tb4b4b4;
Tff7b72return Ta5d6ff`Tffd700${Te6edf3rootTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\/?$/Tb4b4b4, Ta5d6ff"/"Tb4b4b4)Tffd700}Ta5d6ffvendor/micron-parser-goTa5d6ff`Tb4b4b4;
Tb4b4b4}

T8b949e/** Returns SRI hashes embedded at build time (primary) or fetched from integrity.json (fallback). */
Tff7b72async Tff7b72function Te6edf3getIntegrityHashesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3integrityHashes Tff7b72!== Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3integrityHashesTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3embeddedWasm Tff7b72= Tff7b72typeof Te6edf3__MICRON_WASM_SRI_WASM__ Tff7b72!== Ta5d6ff"undefined" Tff7b72? Te6edf3__MICRON_WASM_SRI_WASM__ Tff7b72: Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3embeddedExec Tff7b72= Tff7b72typeof Te6edf3__MICRON_WASM_SRI_EXEC__ Tff7b72!== Ta5d6ff"undefined" Tff7b72? Te6edf3__MICRON_WASM_SRI_EXEC__ Tff7b72: Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3embeddedWasm Tff7b72&& Te6edf3embeddedExecTb4b4b4) Tb4b4b4{
Te6edf3integrityHashes Tff7b72= Tb4b4b4{ Te6edf3wasmTff7b72: Te6edf3embeddedWasmTb4b4b4, Te6edf3wasmExecTff7b72: Te6edf3embeddedExec Tb4b4b4}Tb4b4b4;
Tff7b72return Te6edf3integrityHashesTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Te6edf3fetchTb4b4b4(Ta5d6ff`Tffd700${Te6edf3baseUrlTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff/integrity.jsonTa5d6ff`Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3resTb4b4b4.Te6edf3okTb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Te6edf3integrityHashes Tff7b72= Tff7b72await Te6edf3resTb4b4b4.Te6edf3jsonTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3integrityHashesTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/** Verifies SRI hash of buffer against expected hash. Throws if mismatch or no hash provided. */
Tff7b72async Tff7b72function Te6edf3verifySriTb4b4b4(Te6edf3bufTb4b4b4, Te6edf3expectedHashTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3expectedHashTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Ta5d6ffMicron WASM: SRI hash missing for Tffd700${Te6edf3nameTffd700}Ta5d6ff. Refusing to load untrusted code.Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3actualHash Tff7b72= Tff7b72await Te6edf3computeSriHashTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3actualHash Tff7b72!== Te6edf3expectedHashTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(
Ta5d6ff`Ta5d6ffMicron WASM: SRI hash mismatch for Tffd700${Te6edf3nameTffd700}Ta5d6ff. Possible tampering detected. Refusing to execute.Ta5d6ff`
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3injectScriptTb4b4b4(Te6edf3srcTb4b4b4, Te6edf3expectedHashTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3id Tff7b72= Ta5d6ff"meshchatx-micron-wasm-exec"Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Te6edf3fetchTb4b4b4(Te6edf3srcTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3resTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Ta5d6ffMicron WASM: failed to fetch script Tffd700${Te6edf3srcTffd700}Ta5d6ff (Tffd700${Te6edf3resTb4b4b4.Te6edf3statusTffd700}Ta5d6ff)Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3buf Tff7b72= Tff7b72await Te6edf3resTb4b4b4.Te6edf3arrayBufferTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3verifySriTb4b4b4(Te6edf3bufTb4b4b4, Te6edf3expectedHashTb4b4b4, Ta5d6ff"wasm_exec.js"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3blob Tff7b72= Tff7b72new Te6edf3BlobTb4b4b4(Tb4b4b4[Te6edf3bufTb4b4b4]Tb4b4b4, Tb4b4b4{ Te6edf3typeTff7b72: Ta5d6ff"application/javascript" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3blobUrl Tff7b72= Te6edf3URLTb4b4b4.Te6edf3createObjectURLTb4b4b4(Te6edf3blobTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72new Tffa657PromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3s Tff7b72= Tffa657documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"script"Tb4b4b4)Tb4b4b4;
Te6edf3sTb4b4b4.Te6edf3id Tff7b72= Te6edf3idTb4b4b4;
Te6edf3sTb4b4b4.Tff7b72async Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3sTb4b4b4.Te6edf3src Tff7b72= Te6edf3blobUrlTb4b4b4;
Te6edf3sTb4b4b4.Te6edf3onload Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3blobUrlTb4b4b4)Tb4b4b4;
Te6edf3resolveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3sTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3blobUrlTb4b4b4)Tb4b4b4;
Te6edf3rejectTb4b4b4(Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Ta5d6ffMicron WASM: failed to load script Tffd700${Te6edf3srcTffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3headTb4b4b4.Te6edf3appendChildTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* Tears down wasm_exec script tag and globals so WASM can be reloaded (e.g. after override change).
*/
Tff7b72export Tff7b72function Te6edf3teardownNomadMicronWasmRuntimeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"meshchatx-micron-wasm-exec"Tb4b4b4)Tff7b72?Tb4b4b4.Te6edf3removeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72delete Tffa657globalThisTb4b4b4.Te6edf3micronConvertTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tffa657globalThisTb4b4b4.Te6edf3micronConvert Tff7b72= Tff7b72undefinedTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72delete Tffa657globalThisTb4b4b4.Te6edf3GoTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tffa657globalThisTb4b4b4.Te6edf3Go Tff7b72= Tff7b72undefinedTb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* Restricts the exported Go function to string/boolean inputs and string output for the Micron HTML path.
* Full process isolation is not available in-browser; output is still sanitized by MicronParser.
*/
Tff7b72function Te6edf3wrapMicronConvertForNarrowJsSurfaceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3inner Tff7b72= Tffa657globalThisTb4b4b4.Te6edf3micronConvertTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3inner Tff7b72!== Ta5d6ff"function" Tff7b72|| Te6edf3innerTb4b4b4.Te6edf3__meshchatxMicronWasmWrappedTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3wrapped Tff7b72= Tff7b72function Tb4b4b4(Te6edf3markupTb4b4b4, Te6edf3darkThemeTb4b4b4, Te6edf3forceMonospaceTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3innerTb4b4b4(Tffa657StringTb4b4b4(Te6edf3markup Tff7b72?? Ta5d6ff""Tb4b4b4)Tb4b4b4, Te6edf3darkTheme Tff7b72=== Tff7b72trueTb4b4b4, Te6edf3forceMonospace Tff7b72=== Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3wrappedTb4b4b4.Te6edf3__meshchatxMicronWasmWrapped Tff7b72= Tff7b72trueTb4b4b4;
Tffa657globalThisTb4b4b4.Te6edf3micronConvert Tff7b72= Te6edf3wrappedTb4b4b4;
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3instantiateWasmBufferTb4b4b4(Te6edf3bufTb4b4b4, Te6edf3goTb4b4b4) Tb4b4b4{
Tff7b72let Te6edf3resultTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3result Tff7b72= Tff7b72await Te6edf3WebAssemblyTb4b4b4.Te6edf3instantiateStreamingTb4b4b4(
Tff7b72new Te6edf3ResponseTb4b4b4(Te6edf3bufTb4b4b4, Tb4b4b4{ Te6edf3headersTff7b72: Tb4b4b4{ Ta5d6ff"content-type"Tff7b72: Ta5d6ff"application/wasm" Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3goTb4b4b4.Te6edf3importObject
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3result Tff7b72= Tff7b72await Te6edf3WebAssemblyTb4b4b4.Te6edf3instantiateTb4b4b4(Te6edf3bufTb4b4b4, Te6edf3goTb4b4b4.Te6edf3importObjectTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3goTb4b4b4.Te6edf3runTb4b4b4(Te6edf3resultTb4b4b4.Te6edf3instanceTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3instantiateOnceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3WebAssembly Tff7b72=== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Micron WASM: WebAssembly is not available"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3root Tff7b72= Te6edf3baseUrlTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3override Tff7b72= Tff7b72await Te6edf3readRuntimeOverrideCachedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3integrity Tff7b72= Tff7b72await Te6edf3getIntegrityHashesTb4b4b4(Tb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3integrityTff7b72?Tb4b4b4.Te6edf3wasmExecTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Micron WASM: wasm_exec SRI missing (build without WASM vendor files?)"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72await Te6edf3injectScriptTb4b4b4(Ta5d6ff`Tffd700${Te6edf3rootTffd700}Ta5d6ff/wasm_exec.jsTa5d6ff`Tb4b4b4, Te6edf3integrityTb4b4b4.Te6edf3wasmExecTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657globalThisTb4b4b4.Te6edf3Go Tff7b72=== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Micron WASM: Go runtime missing after wasm_exec.js load"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3go Tff7b72= Tff7b72new Tffa657globalThisTb4b4b4.Te6edf3GoTb4b4b4(Tb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3override Tff7b72&& Te6edf3overrideTb4b4b4.Te6edf3wasmBytes Tff7b72&& Te6edf3overrideTb4b4b4.Te6edf3wasmSriTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3verifySriTb4b4b4(Te6edf3overrideTb4b4b4.Te6edf3wasmBytesTb4b4b4, Te6edf3overrideTb4b4b4.Te6edf3wasmSriTb4b4b4, Ta5d6ff"micron-parser-go.wasm (runtime override)"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3instantiateWasmBufferTb4b4b4(Te6edf3overrideTb4b4b4.Te6edf3wasmBytesTb4b4b4, Te6edf3goTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72const Te6edf3wasmUrl Tff7b72= Ta5d6ff`Tffd700${Te6edf3rootTffd700}Ta5d6ff/micron-parser-go.wasmTa5d6ff`Tb4b4b4;
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Te6edf3fetchTb4b4b4(Te6edf3wasmUrlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3resTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Ta5d6ffMicron WASM: fetch failed (Tffd700${Te6edf3resTb4b4b4.Te6edf3statusTffd700}Ta5d6ff)Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3buf Tff7b72= Tff7b72await Te6edf3resTb4b4b4.Te6edf3arrayBufferTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3verifySriTb4b4b4(Te6edf3bufTb4b4b4, Te6edf3integrityTff7b72?Tb4b4b4.Te6edf3wasmTb4b4b4, Ta5d6ff"micron-parser-go.wasm"Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3instantiateWasmBufferTb4b4b4(Te6edf3bufTb4b4b4, Te6edf3goTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657globalThisTb4b4b4.Te6edf3micronConvert Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Micron WASM: micronConvert was not registered"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3wrapMicronConvertForNarrowJsSurfaceTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72export Tff7b72function Te6edf3invalidateNomadMicronWasmPreloadTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3resolvedPromise Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3integrityHashes Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3resolvedOverridePromise Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3teardownNomadMicronWasmRuntimeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* Call after installing or clearing a runtime WASM override so the next preload re-reads IndexedDB.
*/
Tff7b72export Tff7b72function Te6edf3refreshMicronWasmRuntimeOverrideCacheTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3resolvedOverridePromise Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}

T8b949e/**
* Ensures micron-parser-go WASM is initialized; resolves true when micronConvert is callable.
*/
Tff7b72export Tff7b72function Te6edf3preloadNomadMicronWasmTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isMicronWasmBundledTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657globalThisTb4b4b4.Te6edf3micronConvert Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Te6edf3injectMicronWasmStylesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3resolvedPromise Tff7b72=== Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3resolvedPromise Tff7b72= Tb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Te6edf3instantiateOnceTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3ok Tff7b72= Tff7b72typeof Tffa657globalThisTb4b4b4.Te6edf3micronConvert Tff7b72=== Ta5d6ff"function"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3okTb4b4b4) Te6edf3injectMicronWasmStylesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3okTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3warnTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3resolvedPromise Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3resolvedPromiseTb4b4b4;
Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────